SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO


CREATE PROCEDURE [dbo].[SP_TXMVTO_CNTB_I35]  
/*------------------------------------------------------------*/      
/*----- Empresa          : OFISIS S.A.                    ----*/      
/*----- Cliente          : OFISIS S.A.                    ----*/      
/*----- Sistema          : Contabilidad                   ----*/      
/*----- Modulo           : Empresa                        ----*/      
/*----- Programa         : Gestion en Linea, caso 'ORI'   ----*/      
/*----- Script           : TXMVTO_CNTB                    ----*/      
/*----- Nombre           : SP_TXMVTO_CNTB_I35             ----*/      
/*----- Desarrollado por : LMGP		                  ----*/      
/*----- Fecha            : 11/02/2003                     ----*/      
/*----- Base de Datos    : MS SQL Server                  ----*/      
/*----- Version          : 8.0                            ----*/      
/*----- Invoca a SP      : SP_TXMVTO_CNTB_I35             ----*/      
/*------------------------------------------------------------*/      
/*------------------------------------------------------------*/      
/*----- MODIFICADO 2:                                    -----*/    
/*----- FECHA MODIF.:                                    -----*/
/*----- DETALLE MODIF :                                  -----*/    
/*-------------------------------------------------------------------*/      
/*----- Comentario: Para ser llamado desde proc de Dif. en cambio -----*/      
/*-----             Se creo sobre la base de SP_TXMVTO_CNTB_I25   -----*/      
/*------------------------------------------------------------*/      
/*----- Drop proc SP_TXMVTO_CNTB_I35                      ----*/      
/*----- Grant all on SP_TXMVTO_CNTB_I35 to public         ----*/      
/*----- SP_TXMVTO_CNTB_I35   '01',1,'001','093', 2003, 2, '0000000001'----*/      
/*------------------------------------------------------------*/      
@ISCO_EMPR         TD_VC_002,      
@ISCO_USUA          TD_VC_008,    
@IDFE_USUA          TD_DT_001,    
@INNU_CNTB_EMPR    TD_IN_001,      
@ISCO_UNID_CNTB    TD_VC_003,      
@ISCO_OPRC_CNTB    TD_VC_003,      
@INNU_ANNO         TD_IN_004_ANNO,      
@INNU_MESE         TD_IN_002_MESE,      
@ISNU_ASTO         TD_VC_010      
       
As      
DECLARE       
@VSST_ASIE_AUX     TD_VC_003,      
@VSST_GEST_0001    TD_VC_001,      
@VSCO_OPRC_0001    TD_VC_003,      
@VSCO_CNTA_DEST  TD_VC_020_CNTA,      
@VSCO_CNTA_CONT  TD_VC_020_CNTA,      
@VSST_CNTA_CAMB  TD_VC_003,      
@VSST_AUXI_0001  TD_VC_001_SINO,      
@VSST_AUXI_0002   TD_VC_001_SINO,      
@VNNU_MAXI_SECU  TD_IN_002,      
@VSCO_MONE_0001  TD_VC_003,      
@VNFA_CMPR_0001  TD_NU_015_006,      
@VNFA_VNTA_0001   TD_NU_015_006,      
@VNFA_CAMB_0001   TD_NU_015_006,      
@VSTI_AUXI_0001 TD_VC_001,      
@VSCO_AUXI_0001 TD_VC_020,      
@VSTI_AUXI_0002 TD_VC_001,      
@VSCO_AUXI_0002 TD_VC_020,      
@VSTI_OPER_DEST TD_VC_003,      
@VSTI_OPER_CONT   TD_VC_003,      
@CNNU_SECU    TD_IN_002,      
@CSCO_CNTA_EMPR    TD_VC_020_CNTA,      
@CSTI_AUXI_EMPR   TD_VC_001,      
@CSCO_AUXI_EMPR   TD_VC_020,      
@CSCO_MONE    TD_VC_003,      
@CSTI_OPER    TD_VC_003,      
@CNIM_MVTO_ORIG      TD_NU_016_004,      
@CNIM_MVTO_CNTB  TD_NU_016_004,      
@CSDE_GLOS           TD_VC_100,      
@CSCO_ORDE_SERV  TD_VC_020,      
@CDFE_ASTO_CNTB  TD_DT_001,      
@CSTI_CAMB           TD_VC_003,      
@CNFA_CAMB           TD_NU_015_006,      
@CSSI_MVTO_CNTB      TD_VC_003,      
@CDFE_DOCU_VENC      TD_DT_001,      
@CNFA_CAMB_DIAR  TD_NU_015_006,      
@CDFE_DOCU_REFE  TD_DT_001,      
@CNNU_PROC           TD_IN_001,      
@CNNU_PROC_SECU  TD_IN_001  ,    
-------------------------    
@VSCO_MONE     TD_VC_003,      
@IDFE_ASTO     TD_DT_001,    
@VSSI_MVTO_CNTB TD_VC_003,    
@VSCO_GANA_REDO TD_VC_020,    
@VSCO_PERD_REDO TD_VC_020,    
@VNTO_SALD   TD_NU_016_004,     
@VNNU_FACT_REDO TD_NU_015_006,    
@VSID_GANA_REDO TD_VC_003,    
@VSID_PERD_REDO TD_VC_003,    
@VDFE_ASTO_CNTB TD_DT_001,     
@VSST_ORDE_0001 TD_VC_001,     
@VSST_ORDE_0002 TD_VC_001,     
@VSCO_ORDE_SER1 TD_VC_020,     
@VSCO_ORDE_SER2 TD_VC_020,     
@CSST_DIFE_CAMB TD_VC_001,     
@CSST_DIFE_MAYO TD_VC_001    
    
SELECT @VSST_ASIE_AUX  = NULL         
SELECT @VSST_GEST_0001    = NULL      
SELECT @VSCO_OPRC_0001    = NULL      
SELECT @VSCO_CNTA_DEST  = NULL      
SELECT @VSCO_CNTA_CONT  = NULL      
SELECT @VSST_CNTA_CAMB  = NULL      
SELECT @VSST_AUXI_0001  = NULL      
SELECT @VSST_AUXI_0002   = NULL      
SELECT @VNNU_MAXI_SECU  = 0.00      
SELECT @VSCO_MONE_0001  = NULL      
SELECT @VNFA_CMPR_0001  = 0.00      
SELECT @VNFA_VNTA_0001   = 0.00      
SELECT @VNFA_CAMB_0001   = 0.00      
SELECT @VSTI_AUXI_0001 = NULL      
SELECT @VSCO_AUXI_0001 = NULL      
SELECT @VSTI_AUXI_0002 = NULL      
SELECT @VSCO_AUXI_0002 = NULL      
SELECT @VSTI_OPER_DEST = NULL      
SELECT @VSTI_OPER_CONT   = NULL      
SELECT @CNNU_SECU  = 0      
SELECT @CSCO_CNTA_EMPR    = NULL      
SELECT @CSTI_AUXI_EMPR   = NULL      
SELECT @CSCO_AUXI_EMPR   = NULL      
SELECT @CSCO_MONE = NULL      
SELECT @CSTI_OPER = NULL      
SELECT @CNIM_MVTO_ORIG  = 0.00      
SELECT @CNIM_MVTO_CNTB = 0.00      
SELECT @CSDE_GLOS       = NULL      
SELECT @CSCO_ORDE_SERV = NULL      
SELECT @CDFE_ASTO_CNTB = NULL      
SELECT @CSTI_CAMB           = NULL      
SELECT @CNFA_CAMB           = 0.00      
SELECT @CSSI_MVTO_CNTB      = NULL      
SELECT @CDFE_DOCU_VENC      = NULL      
SELECT @CNFA_CAMB_DIAR      = 0.00      
SELECT @CDFE_DOCU_REFE  = NULL      
SELECT @CNNU_PROC           = 0      
SELECT @CNNU_PROC_SECU  = 0      
      
 SELECT @VSST_ASIE_AUX = ST_ASIE_GEST,@VSST_GEST_0001= ST_GEST_LINE    
 FROM TMPARA_CONT      
 WHERE CO_EMPR = @ISCO_EMPR      
       
/* SELECT  @VSCO_OPRC_0001 = CO_OPRC_CNTB        
 FROM TTIDEN_OPER      
 WHERE      
 CO_EMPR = @ISCO_EMPR And       
 ID_OPRC = '011' And      
 NU_CNTB_EMPR = @INNU_CNTB_EMPR    */   
         
 IF @VSST_ASIE_AUX = 'ORI'      
 BEGIN      
   IF @VSST_GEST_0001 ='S'      
   BEGIN      
    /* DELETE FROM TXMVTO_CNTB       
     WHERE CO_EMPR      = @ISCO_EMPR And      
     NU_CNTB_EMPR = @INNU_CNTB_EMPR  And      
     CO_UNID_CNTB  = @ISCO_UNID_CNTB And      
     CO_OPRC_CNTB =  @VSCO_OPRC_0001 And      
     NU_ANNO      =  @INNU_ANNO And      
     NU_MESE      =  @INNU_MESE  And      
     ST_GEST       = 'S'    */    
      
    DECLARE CU_TXMVTO_CNTB_I35 CURSOR      
    For      
    Select   NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,      
    TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,      
    IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS,       
    SI_MVTO_CNTB, FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE,      
    NU_PROC, NU_PROC_SECU, CO_ORDE_SERV, ST_DIFE_CAMB, ST_DIFE_MAYO      
    FROM TXMVTO_CNTB      
    WHERE   CO_EMPR = @ISCO_EMPR      
    AND NU_CNTB_EMPR = @INNU_CNTB_EMPR      
    AND CO_UNID_CNTB = @ISCO_UNID_CNTB      
    AND CO_OPRC_CNTB = @ISCO_OPRC_CNTB      
    AND NU_ANNO = @INNU_ANNO      
    AND NU_MESE = @INNU_MESE      
    AND NU_ASTO = @ISNU_ASTO      
    AND SI_MVTO_CNTB = 'APR'      
      
    OPEN  CU_TXMVTO_CNTB_I35      
    FETCH CU_TXMVTO_CNTB_I35 INTO @CNNU_SECU,@CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,      
 @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_CAMB,@CSCO_MONE,@CNFA_CAMB,      
 @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB,@CSDE_GLOS,@CSSI_MVTO_CNTB,      
 @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR, @CDFE_DOCU_REFE,       
 @CNNU_PROC, @CNNU_PROC_SECU, @CSCO_ORDE_SERV, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO    
         
    WHILE  @@Fetch_Status = 0      
      BEGIN      
  SELECT  @VSCO_CNTA_DEST = CO_CNTA_DEST, @VSCO_CNTA_CONT = CO_CNTA_CONT,       
                @VSST_CNTA_CAMB = ST_CNTA_CAMB      
 FROM TMPLAN_EMPR      
 WHERE CO_EMPR = @ISCO_EMPR      
 AND CO_CNTA_EMPR = @CSCO_CNTA_EMPR      
 AND NU_ANNO = 9999      
 -- saca de la tabla TRAUXI_GEST las cuentas contrapartida y destino      
 If IsNull(Rtrim(@VSCO_CNTA_DEST), '') = '' Or  IsNull(Rtrim(@VSCO_CNTA_CONT), '') = '' -- Is NULL Or @VSCO_CNTA_CONT Is NULL      
 Begin       
        
 Select @VSCO_CNTA_DEST = IsNull(Rtrim(CO_CNTA_DEST), ''), @VSCO_CNTA_CONT = IsNull(Rtrim(CO_CNTA_CONT), '')      
 From TRAUXI_GEST      
 Where CO_EMPR = @ISCO_EMPR      
 And CO_CNTA_EMPR = @CSCO_CNTA_EMPR      
 And TI_AUXI_EMPR = @CSTI_AUXI_EMPR      
 And CO_AUXI_EMPR = @CSCO_AUXI_EMPR      
      
 End       
 -- fin saca de la tabla TRAUXI_GEST las cuentas contrapartida y destino      
         
  IF IsNull(Rtrim(@VSCO_CNTA_DEST), '') != ''  AND IsNull(Rtrim(@VSCO_CNTA_CONT), '') != ''  
    BEGIN      
      SELECT @VSST_AUXI_0001 = ST_AUXI_EMPR, @VSST_ORDE_0001 = ST_ORDE_SERV        
      FROM TMPLAN_EMPR      
      WHERE CO_EMPR = @ISCO_EMPR      
      AND CO_CNTA_EMPR = @VSCO_CNTA_DEST      
      AND NU_ANNO = 9999      
      
      SELECT @VSST_AUXI_0002 = ST_AUXI_EMPR, @VSST_ORDE_0002 = ST_ORDE_SERV            
      FROM TMPLAN_EMPR      
      WHERE CO_EMPR = @ISCO_EMPR      
      AND CO_CNTA_EMPR = @VSCO_CNTA_CONT      
      AND NU_ANNO = 9999      
      
      SELECT  @VNNU_MAXI_SECU = MAX(NU_SECU) + 1       
      FROM TXMVTO_CNTB       
      WHERE       
      CO_EMPR  =  @ISCO_EMPR    And                                                 
      NU_CNTB_EMPR  =  @INNU_CNTB_EMPR  And      
      CO_UNID_CNTB  =  @ISCO_UNID_CNTB  And      
      CO_OPRC_CNTB  =  @ISCO_OPRC_CNTB  And      
      NU_ANNO  =  @INNU_ANNO   And      
      NU_MESE  =  @INNU_MESE    And      
      NU_ASTO  =  @ISNU_ASTO        

   IF @VSST_AUXI_0001 ='N'      
         BEGIN      
    SELECT @VSTI_AUXI_0001 = NULL      
    SELECT @VSCO_AUXI_0001 = NULL      
         END      
   ELSE      
      BEGIN       
    SELECT @VSTI_AUXI_0001 = @CSTI_AUXI_EMPR      
    SELECT @VSCO_AUXI_0001 = @CSCO_AUXI_EMPR      
         END       
      
   IF @VSST_AUXI_0002 ='N'      
         BEGIN      
    SELECT @VSTI_AUXI_0002 = NULL      
    SELECT @VSCO_AUXI_0002 = NULL      
         END      
   ELSE      
         BEGIN       
    SELECT  @VSTI_AUXI_0002 = @CSTI_AUXI_EMPR      
    SELECT  @VSCO_AUXI_0002 = @CSCO_AUXI_EMPR      
         END       
    
-- ORDEN SERVICIO      
   IF @VSST_ORDE_0001 ='N'      
         BEGIN      
    SELECT @VSCO_ORDE_SER1 = NULL      
         END      
   ELSE      
         BEGIN       
    SELECT  @VSCO_ORDE_SER1 = @CSCO_ORDE_SERV    
         END      
    
   IF @VSST_ORDE_0002 ='N'      
         BEGIN      
    SELECT @VSCO_ORDE_SER2 = NULL      
         END      
   ELSE      
         BEGIN       
    SELECT  @VSCO_ORDE_SER2 = @CSCO_ORDE_SERV    
         END      
-- ORDEN SERVICIO      
    
    
   IF @CSTI_OPER = 'CAR' BEGIN      
    SELECT  @VSTI_OPER_DEST = 'CAR'      
    SELECT  @VSTI_OPER_CONT = 'ABO'      
         END       
      
   IF @CSTI_OPER = 'ABO'  BEGIN      
    SELECT @VSTI_OPER_DEST = 'ABO'      
    SELECT @VSTI_OPER_CONT = 'CAR'      
         END      
     
   INSERT INTO TXMVTO_CNTB      
      ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,      
      NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,      
      TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,      
      IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS,       
      SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,       
      NU_ASTO_ORIG, FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE,      
      NU_PROC, NU_PROC_SECU, CO_ORDE_SERV, ST_GEST, ST_REDO, CO_CNTA_ORIG, NU_SECU_ORIG, ST_DIFE_CAMB, ST_DIFE_MAYO,  
      CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA)      
      VALUES      
      ( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB,      
        @INNU_ANNO, @INNU_MESE, @ISNU_ASTO, @VNNU_MAXI_SECU, @CDFE_ASTO_CNTB,      
        @VSCO_CNTA_DEST, @VSTI_AUXI_0001, @VSCO_AUXI_0001, NULL, NULL,      
        NULL, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @VSTI_OPER_DEST,       
        @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSSI_MVTO_CNTB, @ISCO_UNID_CNTB,       
        @ISCO_OPRC_CNTB, @ISNU_ASTO,@CDFE_DOCU_VENC, @CNFA_CAMB_DIAR,       
        @CDFE_DOCU_REFE, @CNNU_PROC, @CNNU_PROC_SECU, @VSCO_ORDE_SER1, 'S', 'N',   
        @CSCO_CNTA_EMPR, @CNNU_SECU, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA)      
      
   SELECT  @VNNU_MAXI_SECU = @VNNU_MAXI_SECU +1      
      
   INSERT  INTO TXMVTO_CNTB      
      ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,      
      NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,      
      TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,      
      IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS,       
      SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,       
      NU_ASTO_ORIG, FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE,      
      NU_PROC, NU_PROC_SECU, CO_ORDE_SERV, ST_GEST, ST_REDO, CO_CNTA_ORIG, NU_SECU_ORIG, ST_DIFE_CAMB, ST_DIFE_MAYO,  
      CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA)      
      VALUES      
      ( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB,      
        @INNU_ANNO, @INNU_MESE, @ISNU_ASTO, @VNNU_MAXI_SECU, @CDFE_ASTO_CNTB,      
        @VSCO_CNTA_CONT, @VSTI_AUXI_0002, @VSCO_AUXI_0002, NULL, NULL,      
        NULL, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @VSTI_OPER_CONT,       
        @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSSI_MVTO_CNTB,  @ISCO_UNID_CNTB,       
        @ISCO_OPRC_CNTB, @ISNU_ASTO, @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR,       
        @CDFE_DOCU_REFE, @CNNU_PROC, @CNNU_PROC_SECU, @VSCO_ORDE_SER2, 'S', 'N',   
        @CSCO_CNTA_EMPR, @CNNU_SECU, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA)
           
END  -- @VSCO_CNTA_DEST AND @VSCO_CNTA_CONT      
FETCH CU_TXMVTO_CNTB_I35 INTO @CNNU_SECU,@CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,      
     @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_CAMB,@CSCO_MONE,@CNFA_CAMB,      
     @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB,@CSDE_GLOS,@CSSI_MVTO_CNTB,      
     @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR, @CDFE_DOCU_REFE,       
     @CNNU_PROC, @CNNU_PROC_SECU, @CSCO_ORDE_SERV, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO        
      
END -- END DEL WHILE      
      
CLOSE CU_TXMVTO_CNTB_I35       
   DEALLOCATE CU_TXMVTO_CNTB_I35       
     
END -- S      
END  -- ORI      
      
RETURN  
/*------------------------------------------------------------*/      




GO
